#pragma once

class CKinectInputNULL: public IKinectInput
{
public:
	CKinectInputNULL(){}
	~CKinectInputNULL(){}

	bool Init(){return false;}
	void Update(){}

	virtual void RegisterInputListener(IKinectInputListener* pInputListener, const char* name){}
	virtual void UnregisterInputListener(IKinectInputListener* pInputListener){}
	bool RegisterArcRail(int gripId, int railId, const Vec2& vScreenPos, const Vec3& vDir, float fLenght, float fDeadzoneLength, float fToleranceConeAngle){return false;}
	void UnregisterArcRail(int gripId){}
	bool RegisterHoverTimeRail(int gripId, int railId, const Vec2& vScreenPos, float fHoverTime, float fTimeTillCommit, SKinGripShape* pGripShape = NULL){return false;}
	void UnregisterHoverTimeRail(int gripId){}
	void UnregisterAllRails(){}
	inline bool IsEnabled() { return false; }
	bool GetBodySpaceHandles(SKinBodyShapeHandles& bodyShapeHandles){ return false; }
	bool GetSkeletonRawData(uint32 iUser, SKinSkeletonRawData &skeletonRawData) const { return false; };
	bool GetSkeletonDefaultData(uint32 iUser, SKinSkeletonDefaultData &skeletonDefaultData) const { return false; };
	void DebugDraw(){}
	const char* GetUserStatusMessage() {return ""; }

	//Skeleton
	void EnableSeatedSkeletonTracking(bool bValue) {}
	uint32 GetClosestTrackedSkeleton() const {return KIN_SKELETON_INVALID_TRACKING_ID;}

	//	Wave
	virtual void EnableWaveGestureTracking(bool bEnable){};
	virtual float GetWaveGestureProgress(DWORD* pTrackingId) { return 0.f; }

	// Identity
	bool IdentityDetectedIntentToPlay(DWORD dwTrackingId) {return false;}
	bool IdentityIdentify(DWORD dwTrackingId, KinIdentifyCallback callbackFunc, void* pData){return false;}

	// Speech
	bool SpeechEnable(){return false;}
	void SpeechDisable(){}
	bool KinSpeechSetEventInterest(unsigned long ulEvents){ return false; }
	bool KinSpeechLoadDefaultGrammar(){ return false;}
	bool KinSpeechStartRecognition(){return false;}
	void KinSpeechStopRecognition(){};

};